import axios from "axios";
import { Message } from "element-ui";
import store from "@/store";

// 创建请求实例
export const $axios = axios.create({
  // 设置超出时间
  timeout: 30000,
  // 基础url 会在请求url中自动添加前置链接
  baseURL: "/cms-api",
  //"http://www.zxyi.cn:8888/api/private/v1/",
});

// 添加请求拦截器
$axios.interceptors.request.use(
  (config) => {
    // 请求前:
    // 登录状态判断
    const token = store.getters.token;
    if (token) {
      // 请求头添加 Authorization 属性
      config.headers["Authorization"] = token;
    }
    return config;
  },
  (error) => {
    // 请求错误干啥
    return Promise.reject(error);
  }
);

// 添加响应拦截器
$axios.interceptors.response.use(
  (response) => {
    // 2xx范围内状态马会触发函数
    // 对相应数据做点啥
    if (response.data.meta.status === 200) {
      // 那就把现有对象转换成promise对象
      return Promise.resolve(response.data);
    } else {
      // 出现错误 直接弹窗
      Message.error(
        response.data.meta.msg ? response.data.meta.msg : "错误信息"
      );
    }
  },
  function (error) {
    // 超出2xx触发
    // 让他爆出错误信息
    console.log("!2xx+", error);
    Message.error("错误信息");
  }
);
